﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Runtime.Serialization;
using System.Web.Script.Serialization;
using System.Data.SqlClient;
using CMD_WEB.DAL;
using Newtonsoft.Json;
using CMD.BAL.SAP;

namespace CMD.BAL.SOL
{
    [DataContractAttribute]
    public class SolicitudModif 
    {
        public static string GetInfoModif(string id_sol)
        {
            DataTable dt;
            Dictionary<string, string> dc = new Dictionary<string, string>();
            JavaScriptSerializer ms2 = new JavaScriptSerializer();
            string json2;
            int j=0;
            try
            {
                dt = CMD_WEB.DAL.SrvDB.ExecuteQuery("execute get_sol_modif_temp " + id_sol);

                /***** modificación para sap   *************/
                 
                //SvcSAP sap = new SvcSAP();
                //sap.consultCustomerData(id_sol);
                 
                /*****************************************/


                if (dt.Rows.Count == 0)
                {
                    dc.Add("Mensaje", "No existen Registros");
                    json2 = ms2.Serialize(dc);
                    return json2;
                }
                else
                {
                    for (int i = 0; i < dt.Columns.Count; i++)
                        dc.Add(dt.Columns[i].ColumnName.ToString(), dt.Rows[0][i].ToString());

                    json2 = ms2.Serialize(dc);
                    return json2;
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        public static string GetInfoMessage(string id_sol)
        {
            DataTable dt;
            Dictionary<string, string> dc = new Dictionary<string, string>();
            JavaScriptSerializer ms2 = new JavaScriptSerializer();
            string json2;
            int j = 0;
            try
            {
                dt = CMD_WEB.DAL.SrvDB.ExecuteQuery("execute get_sol_msjSap_TEMP " + id_sol);
                if (dt.Rows.Count == 0)
                {
                    dc.Add("Mensaje", "No existen Registros");
                    json2 = ms2.Serialize(dc);
                    return json2;
                }
                else
                {
                    for (int i = 0; i < dt.Columns.Count; i++)
                        dc.Add(dt.Columns[i].ColumnName.ToString(), dt.Rows[0][i].ToString());

                    json2 = ms2.Serialize(dc);
                    return json2;
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }


        /// <summary>
        /// Realiza la consulta a SAP en base al ID de cliente
        /// </summary>
        /// <param name="consulta">Dciccionario con los datos de la consulta</param>
        /// <returns></returns>
        public static string GetInfoModif_SAP(string consulta)
        {
            DataTable dt, dt2;
            Dictionary<string, string> dc = new Dictionary<string, string>();
            Dictionary<string, string> dc2 = new Dictionary<string, string>();
            JavaScriptSerializer ms2 = new JavaScriptSerializer();
            string json2;
            int j = 0;

            Dictionary<string, Dictionary<string, string>> respuestaSAP = new Dictionary<string, Dictionary<string, string>>();

            try
            {
                Dictionary<string, string> entrada = JsonConvert.DeserializeObject<Dictionary<string, string>>(consulta);

                SvcSAP sap = new SvcSAP();
                sap.InputSAP(entrada);
                dt = sap.DtChangeSap;
                dt2 = sap.DtMsgSap;

                if (dt.Rows.Count == 0)
                {
                    dc.Add("Mensaje", "No hay registros en la tabla de modificación");
                    respuestaSAP.Add("CHANGE", dc);
                    //json2 = ms2.Serialize(dc);
                    //return json2;
                }
                else
                {
                    for (int i = 0; i < dt.Columns.Count; i++)
                        dc.Add(dt.Columns[i].ColumnName.ToString(), dt.Rows[0][i].ToString());

                    respuestaSAP.Add("CHANGE", dc);
                }

                if (dt2.Rows.Count == 0)
                {
                    dc2.Add("Mensaje", "No hay registros en la tabla de respuesta");
                    respuestaSAP.Add("OUTPUT", dc2);
                }
                else
                {
                    for (int i = 0; i < dt2.Columns.Count; i++)
                        dc2.Add(dt2.Columns[i].ColumnName.ToString(), dt2.Rows[0][i].ToString());

                    respuestaSAP.Add("OUTPUT", dc2);
                }

                json2 = ms2.Serialize(respuestaSAP);

                return json2;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }///////////

    }
}
